import { _decorator, Button, Component, director } from 'cc';
import { DEBUG } from 'cc/env';
import HeroManageSingle from '../heroModule/HeroManageSingle';
import PlatFormAgency from '../platform/PlatFormAgency';
import HeroDTO from '../pojo/dto/HeroDTO';
const { ccclass, property } = _decorator;

@ccclass('LoginScene')
export class LoginScene extends Component {
    /****************************************************************************************************************
     *Readonly 常量
     ****************************************************************************************************************/
    /****************************************************************************************************************
     *Property 定义变量
     ****************************************************************************************************************/
    /***************************************************************
     *PropertyUI 引用的控件
     ***************************************************************/
    @property({ group: { name: 'UI', id: '1' }, type: Button, tooltip: `开始游戏按钮组件` })
    private startButton: Button = undefined!;
    /****************************************************************************************************************
     * Lifecycle 生命周期相关方法
     ****************************************************************************************************************/
    protected onLoad(): void {
        this.startButton.node.on(Button.EventType.CLICK, this.onClickStartGame, this);
        this.startButton.node.active = false;
    }

    protected onEnable(): void {
        let promise = this.userInit();
        promise.then(
            (value) => {
                this.startButton.node.active = true;
            }, (error) => {
            }
        )
    }
    /****************************************************************************************************************
     * Public 公有方法
     ****************************************************************************************************************/
    /****************************************************************************************************************
     * private 私有方法
     ****************************************************************************************************************/
    private onClickStartGame() {
        if (DEBUG) {
            director.loadScene("GameScene")
        } else {
            director.loadScene(`MenuScene`);
        }
    }
    /**
     * 用户登录
     */
    private async userInit() {
        let info = await this.getUserInfo();
        this.initUser(info);
    }

    private initUser(value: any = undefined) {
        let heros: HeroDTO[] = [
            { id: 10001, level: 1 },
            { id: 10011, level: 1 }
        ];

        HeroManageSingle.single.updateHeroEntityList(heros);
    }

    private async getUserInfo() {
        let openId = await PlatFormAgency.single.getOpenID();
        //TODO:获取用户数据
        return openId;
    }
    /****************************************************************************************************************
     * Property Get && Set 属性的 get && set 函数
     ****************************************************************************************************************/

}


